/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package dao;

import java.util.Iterator;
import pojos.DatosEmpresa;
import java.util.List;

/**
 *
 * @author Usuario
 */
public class DatosEmpresaDao extends AbstractDao{
    public void create(DatosEmpresa datos) {
        //validacion de entidad:
        if (datos == null) {
            throw new RuntimeException("Es necesario llenar los campos marcados con *");
        }
        if (datos.getCodTrib() == null || "".equals(datos.getCodTrib())) {
            throw new RuntimeException("Es necesario llenar el código tributario");
        }
        if (datos.getNombre() == null || "".equals(datos.getNombre())) {
            throw new RuntimeException("Es necesario escribir un nombre");
        }
        if (datos.getRegimentrib() == null || "".equals(datos.getRegimentrib())) {
            throw new RuntimeException("Es necesario escribir el régimen tributario de la empresa");
        }
        if (datos.getResolucionAutor() == null || "".equals(datos.getResolucionAutor())) {
            throw new RuntimeException("Es necesario especificar la resolucion de autorización");
        }
        if (datos.getRangoDesde() < 1) {
            throw new RuntimeException("Es necesario especificar un rango inicial de facturación");
        }

        //verificar que el rango sea correcto
        if (datos.getRangoHasta() < 1) {
            throw new RuntimeException("Es necesario especificar un rango final de facturación");
        }
        if (datos.getRangoDesde() <= datos.getRangoHasta()) {
            throw new RuntimeException("El rango de facturación no es correcto");
        }

        super.saveOrUpdate(datos);
    }

    public List<DatosEmpresa> findAll() {
        return (List<DatosEmpresa>) super.findAll(DatosEmpresa.class, "");
    }

    public DatosEmpresa getLastItem() {
        List<DatosEmpresa> datos = (List<DatosEmpresa>) super.findAll(
                DatosEmpresa.class, "");
        
        //para hacerlo generico, se implementa un iterador
        DatosEmpresa lastElem = null;
        Iterator it = datos.iterator();
        while (it.hasNext()) {
            lastElem = (DatosEmpresa) it.next();
        }
        return lastElem;
    }
}
